Tag Helpers vs Html Helpers
Tag Helpers是什麼
Tag Helpers主要是用來擴充HTML elements屬性與功能的,可以在HTML Helpers中加入asp-for或者asp-xxx等屬性,且在語意上會比HTML Helpers來的更直覺與清楚。
這些屬性可以指定C#程式,使Server端可參與HTML的建立與轉譯。
補充📄原始HTML+Tag Helpers的好處
1.原始HTML元素在使用上較直覺,語意也較清楚。
2.能讓Server端的C#與.NET物件參與View的設計。
3.透過簡單的語法就能產出複雜的HTML結構。
Tag Helpers的優點
1.HTML友善的開發經驗:
多數情況下,使用Tag Helpers就像使用HTML一樣。
2.為HTML與Razor markup提供較豐富的IntelliSense環境:
IntelliSense對Tag Helpers來說更具支援性,可對Model屬性有更好的智慧型提示與錯誤檢測。
3.使用Server端的C#物件來產生更強健、易維護、具生產力的程式:
可結合Server端的C#與物件,在語法上會更好維護,也能提高生產力。
Tag Helpers & Html Helpers的利與弊
在前面我們了解了關於Tag Helpers的優勢之後,不知道大家會不會想說:「啊這樣我們還需要用HTML Helpers嗎?」
我想,這個答案可能不太一定。
因為在這兩者間,新的Tag Helpers雖然有非常佔據優勢的功能,但它也欠缺了一些舊的HTML Helpers才有的功能,真的要二擇一是不太可能的。
目前在一些Scaffolding自動產生的基本的檢視中,目前主要是優先使用Tag Helpers為主,HTML Helpers為副。
這樣看來HTML Helpers好像只能當配角的樣子,其實也不一定。
下面我們就來再看一些HTML Helpers當主角的時候:
1.Tag Helpers並未實作HTML Helpers所有的功能,例如多載方法在Tag Helpers中並不支援,因此若你所需的功能Tag Helpers不支援,就還是得用HTML Helpers做。
2.從以前的ASP.NET MVC轉移到ASP.NET Core MVC後,HTML Helpers仍然可以運行,因此在維護上一代所開發出的專案時,我們還是得使用HTML Helpers。
綜上所述,在Tag Helpers可以表現得更好的時候就用它,沒辦法用Tag Helpers的時候就用HTML Helpers,兩者存在並不會衝突。
那麼以上就是今天的分享啦~終於不是在截止前寫完了~
明天見啦~See YA(。•̀ᴗ-)